═══ 1. Overview ═══ WatchCat is a program to recover OS/2 2.x from some kind of hangs by killing (user-initiated) applications. The program can be useful when using bad-behaved software (e.g. Windows software under Win-OS/2) or when developing own applications. It requires a simple connector w/switch on a parallel port OR a similar connector but on the game port OR a similar connector but on a COMx port OR a joystick on the game port ═══ 2. Introduction and QUICK START ═══ The indroduction gives an overview about possiblities and limitations of WatchCat. This indroduction provides a quick start. ═══ 2.1. What WatchCat can do ═══ Although OS/2 2.x is normally very stable, sometimes badly behaved or buggy applications can block both the keyboard and the mouse input and require a hard reset. This is often frustrating because processes are still running and the operating system is still working correctly - it's just that the user can't input anything. WatchCat gives you another input mechanism that can't lock up - an external switch on the parallel, game or serial port that you can trigger when the system hangs. Unless OS/2 really has crashed and the WatchCat process itself has been destroyed, you should be able to regain control. WatchCat is a process which runs continuously, monitoring an input port. (Usually LPT2, but see the other options). It runs with very high priority so that it is almost guaranteed to become active on a regular basis. Don't worry... it checks the port only once in 1.5 seconds, so you won't see any performance degradation. ═══ 2.2. The aim of WatchCat ═══ Obviously, you have to start WatchCat before the system hangs :-) See the chapter about installation on how to set up the program. WatchCat has several options that you can enter on the startup command line: see the detailed information below. To make use of WatchCat, wait until your system hangs :-) Then toggle the switch on the parallel, game or COMx port. Note that if you use a joystick on the game port or any other switch that doesn't stay in one position once you toggle it, you have to press and hold the switch until WatchCat activates. Whenever you activate the switch on the parallel/game/COMx port, WatchCat opens a fullscreen window and displays a task list (see example). You can customize this display to suit your own tastes, including changing the sort criteria, displaying only PM programs, displaying the full path of programs or only the file names, adding program descriptions, monochrome colours, ... From the WatchCat window you can either kill processes or open a full-screen shell. OS/2 hangups are usually caused by a crashed or bad behaved application whose name you already know. If you kill the bad app(le) and return to the Workplace Shell, things usually start working again. Sometimes the Workplace Shell itself hangs, and then it may help to kill the PMSHELL process. (The WPS will reload automatically.) ═══ 2.3. What WatchCat cannot do ═══ WatchCat can't work miracles. If OS/2 has crashed completely or things have gone badly wrong, you need to reboot. However, in our experience in many cases WatchCat lets us go on working, and in some other cases it lets us regain control and save our work before rebooting; and if WatchCat is no help, nothing but rebooting can help. If you need to reboot frequently, see if something is wrong with your hardware, or if you have installed a very bad driver or application. Under normal circumstances, WatchCat should come up in less than two seconds after you activate the switch (or press and hold the joystick's fire button). Sometimes, e.g. if the bad process is doing heavy port I/O it may take some time for WatchCat to pop up. ═══ 2.4. QUICK START ═══ If you want to try WatchCat without reading the whole documentation do the following: 1. First decide how Watchcat should be activated. The easiest is to use a Joystick. If you build a special connector you can use the parallel or the serial port too. 2. Start WatchCat. For the game port try watchcat /G. For other ports read the section about command line parameters (If WatchCat is in your PATH and you are using the game port click here to start WatchCat NOW). 3. Try to activate WatchCat by pressing the (joystick) button. The process list pops up (see example) and allows you to kill a process, to open a shell or to display detailed information (see example) about processes (This is described in the chapter about using WatchCat). 4. If you like WatchCat, configure it to your preferences and install it permanently. 5. Perhaps you want to install a special WatchCat WPS object which makes it easier to configure WatchCat. If not you can delete wpcat.dll. It is not needed by the program. 6. As a last step: If the program helped you in a special situation or prevented you from a crash we'd be glad to get a mail from you. All kinds of comments are very welcome. ═══ 3. How to build a connector ═══ You don't have to build a connector. A joystick on the game port also works. If you don't have a joystick, building a small connector with a single switch is cheaper than buying one. ═══ 3.1. Connecting with the parallel port ═══ It's so simple... Just go out and buy a 25-pin male SUB-D connector that fits to your parallel port, and a single-pole double-throw (SPDT) switch. The switch looks like this: In the shown position pins 2 and 3 are connected. Connect the following pins: switch connector DB-25 1 <- 2 (DATA 0 signal, output) used as logical HIGH 2 -> 11 (BUSY signal, input) used to input the state 3 <- 19 (GROUND) used as logical LOW The following picture gives an overview how to connect for these situations: You might also want to use another kind of switch: one that simply opens and closes one connection. It's just like the one that is used as a Turbo Button in your computer case. E.g. if you don't use your Turbo Button you can use it as the activation switch for WatchCat. Get a switch that stays in the position once you press it. You can use one like your case's Reset Button, but you might have to hold it down for a while before WatchCat recognizes it. You will also need one 4.7 kOhm resistor. In the shown picture both pins are connected, when the button is pressed: Connect one end of the resistor to pin 11, the other end to pin 19 of the parallel port connector. Pin 11 is also connected to one pin of the switch. The other pin of the switch is connected to pin 2 of the parallel port. The following picture gives an overview how to connect for these situations: ═══ 3.2. Connecting with a serial COMx port ═══ The same two kinds of connectors (as described in the previous section) can be used here, too. Get a 25-pin or 9-pin female connector for the serial port. For the first type of switch (SPDT), connect the following pins: 25-pin 9-pin connector on COMx 1 <- 20 1 <- 4 (+12V DC output) used as logical HIGH 2 -> 22 2 -> 9 (RI) used to input the state 3 <- 7 3 <- 5 (GROUND) used as logical LOW For the second type of switch: (Turbo Button...) Connect one end of the resistor to pin 22 (25 pin)/9 (9 pin), the other end to pin 7/5 of the COMx port connector. Pin 22/9 is also connected to one pin of the switch. The other pin of the switch is connected to pin 20/4 of the serial port. Note that here the resistor has to be around 12kOhm. ═══ 3.3. connecting with game port ═══ The same two kinds of connectors can be used here, too. Get a 15-pin male connector for the game port. For the first type of switch (SPDT), connect the following pins: switch connector DB-15 (game port) 1 <- 1 (+5V DC output) used as logical HIGH 2 -> XX (fire button, input) used to input the state 3 <- 4 (GROUND) used as logical LOW Where XX equals 2 for joystick A, button 1 7 joystick A, button 2 10 joystick B, button 1 <- recommended 14 joystick B, button 2 For the second type of switch: (Turbo Button...) Connect one end of the resistor to pin XX, the other end to pin 4 of the game port connector. Pin XX is also connected to one pin of the switch. The other pin of the switch is connected to pin 1 of the game port. Note that here the resistor has to be 4,7kOhm. For the game port, you should know that EVERY time you press (and hold) one joystick's fire button, WatchCat is activated. We only say this because some people are said to play games under OS/2... In this case we recommend to use one of joystick B's buttons as the WatchCat switch (or build a connector on the game port that uses the corresponding pin). Use the /B switch to specify which button WatchCat has to watch - thereafter, you can safely play games with the other joystick. ═══ 4. Installation ═══ If you want to use WatchCat permanently it is recommended to start it on boot time. The following paragraph explains how to do that. ═══ 4.1. Installing WatchCat (the program) ═══ There are several options how to install WatchCat. It is recommended to start WatchCat from the command line at first to find out the right parameters. If everything works as you expect, you can use one of the following methods to start WatchCat automatically every time you boot your computer: 1. Run it from your CONFIG.SYS (This is recommended). Just add one line like RUN=x:\path\WATCHCAT.EXE example: RUN=C:\TOOLS\WATCHCAT.EXE /a /s:pid 2. Let it be started by the Workplace shell. You need a program object (or a shadow) in your system StartUp folder. You can instruct WatchCat to create a Shadow of itself by running: WatchCat shadow. Note that an extra window is opened for WatchCat when you boot. You can check the "Start minimized" and "Minimize to Viewer" options in the program object's settings notebook if you don't want to see anything of WatchCat. 3. If you have a startup.cmd batch file for your system, you can add a call to WatchCat in this file. WARNING: DON'T 'DETACH' WatchCat. It either won't run or cause unpredictable results. 'START' it. If you use WatchCat with a switch on a parallel port, you should check your printer objects and see if there is any device installed on the parallel port you use for WatchCat. Anyway, check the "Shared Access" option or else you could get an access violation error when both the printer driver and WatchCat try to get the port. ═══ 4.2. Installing WatchCat as a WPS object ═══ WatchCat is a true 32-Bit OS/2 2.x application and therefore offers a real WPS integration. This section describes how to install (and uninstall) a WatchCat object icon on your desktop. Important pre-remark: The WPS object was programmed "just for fun". It is not really necessary to install it. It will not increase the functionality of WatchCat. It is an option for those who want to configure WatchCat with a true graphical interface. Before installing it please decide wether you need it or not. You don't need a WatchCat object if: o You want WatchCat to operate invisibly. o You hate having too many Icons on the Desktop. o You know the right command line parameters and want to install WatchCat as quick as possible. You you may want to install a WatchCat object if: o You want to have something visible. o You like a colorful desktop with many funny icons. (Felix: The OS/2 desktop was designed to look like the real desktop. That's why they are both disordered ...) o You don't understand the command line parameters. o Your hardware equipment changes sometimes or you have other reasons why the WatchCat configuration must change sometimes. o You want to switch WatchCat on/off in a graphical way. o You want a quick acess to the WatchCat tasklist because sometimes you must kill processes even if the system does not hang. o You are just curious to see it. Obviously you want to install the WPS object because you are still reading here... Installing is very easy. It is not done automatically (for reasons of safety) but WatchCat gives you as much help as possible. The installation procedure assumes that WatchCat is already installed in its final directory. Run WatchCat registerwps and follow the six necessary steps (For step 1 to step 5 WatchCat asks if it can help you): 1. Read the documentation. Well, you're already doing it. 2. Save the file os2.ini and os2sys.ini. These files contain the desktop settings. It is highly recommended to backup at least these two files when registering a new WPS DLL (this is true for every WPS program). If something goes wrong you can restore your desktop with these files. If you answer 'y' to the second question WatchCat opens a shell and gives the location of the files. You must copy them yourself. 3. Add RUN=X:\watchcat useini to the config.sys. This is the recommended way to auto-start WatchCat at boot-time. If you answer 'y' to the 3rd question, WatchCat starts the system editor and tells you the exact statement you must add. You may also answer 'n' and choose an other way to auto-start WatchCat Installation). Please don't forget the only parameter "useini" 4. Copy wpcat.dll to \os2\dll. The DLL must be in the LIBPATH. The easiest is to copy the DLL to \OS2\DLL. If you answer 'y' to the 4th question WatchCat copies the file. If you answer 'n' you must do this by hand. You may also adjust the LIBPATH. Please note: LIBPATH=.\... is NOT enough!!!! 5. Register the DLL. If you answer 'y' the DLL is registered and an object created. If you answer 'n' the installation is aborted. 6. Enter the values! The object settings notebook is displayed. Enter the right values. WatchCat is still running (don't interrupt) and waits until you have done all necessary changes and until you close the notebook. Then it prints out a message and ends. Now it's time to boot. If you don't like WatchCat to operate as a Workplace object just take the icon (right mouse button) and move it into the shredder. When all instances are deleted (normally only the one created on the desktop) run WatchCat deregisterWPS. Now the DLL is deregistered. If you don't want to install the object again you can delete wpcat.dll. Perhaps it is necessary to reboot before. ═══ 5. Configuration (and command line switches) ═══ This section describes how to configure WatchCat from the command line or from the WPS object. ═══ 5.1. Command Line Switches ═══ Switches start with the standard switch character, '/'. It is also allowed to use '-'. Upper/lower case is ignored. /? or /H This option displays a brief help screen. (If WatchCat.exe is in the PATH you can look at its help screen by clicking on this link. Exit the help view by pressing a key). /x This option defines the parallel port that WatchCat checks; x can be 1 or 2, and the default is LPT2. If you use the connector on LPT1, use the switch /1. For a game port switch, this option is not needed. /I=P,B This option lets you use a non-standard parallel port, serial port or input bit. The default is to watch LPT2 for a change in any of the five input bits. You might want to use different hardware with I/O abilities similar to the parallel or serial COMx ports. Internally there is a difference between parallel port and COMx port hardware: For the parallel port, the value 0FFh is written to the given port (only to provide logical HIGH signals on all data output lines), and a byte from the port address+1 is read and checked for a change. For a serial port, the value 03h is written to port address+4 (MODEM CONTROL REGISTER, to set DTR and RTS to logical HIGH). The toggle of the switch is recognized by reading from port address+6 which is the MODEM STATUS REGISTER. Usually, the RI (RING INDICATOR) line is used. This option isn't needed if you use a standard LPT1, LPT2, COM1-COM4 or game port with the kind of connector we describe below. Examples: (1) If you have a COM port on port address AAAAh, you can use it with the parameters /C /I=AAAA,6 . /C enables COM port type hardware; the '6' means that bit 6 of the Modem Status Register is to be checked; this corresponds to the Ring Indicator pin. If you use other or more pins, use the /B option. (2) If you have a parallel port on address AAAAh, enable it with the parameters /I=AAAA,7 ('7' checks the most significant bit. Again, you can use /B...) /G This option lets you use the game port for connecting a switch (i.e. a joystick's fire button is the simplest switch we know of...). The default is to check both joysticks (A and B) and both fire buttons but you can use the /B switch below to use only one or two of the four possible fire buttons. /GA This option is like /G, but ALL given fire buttons (=bits) have to be pressed the same time to activate WatchCat. Examples: (1) /G: you can press one or more of all four fire buttons to activate WatchCat (2) /GA /B45: to activate WatchCat, you have to press fire button 1 AND 2 of joystick A. /Cx This options lets you use a COM port for connecting a switch. x can be 1,2,3 or 4. If you have COM ports other than COM1-COM4 or with non-standard port addresses, use the /I parameter. Warning: WatchCat accesses the hardware directly. Beware of using the port your mouse is installed on. It won't be accessible anymore. /Bxxx This option defines the bit(s) that WatchCat checks. By default all eight bits are checked for parallel ports, the highest four bits are checked for game or COM ports. If this conflicts with other things that you have connected to your port, you can tell WatchCat to look only for a specific bit and ignore all others. x is the bit number, where 0 is the least significant bit and 7 the most significant. For a parallel port, only bits 3 to 7 make sense because these are the five input bits a standard parallel port has (ERROR, SELECTED, PAPER END, ...) For a game port, only bits 4 to 7 make sense: Bits 4 and 5 correspond to joystick A's buttons 1 and 2, bits 6 and 7 correspond to joystick B's bottons 1 and 2. A COM port should only be used with bits 4 to 7 (these are CTS, DSR, RI, DCD). Example: (1) /C1 /B67 checks COM1 for a change in the RI or DCD line (2) /B67 checks LPT2 for a change in ERROR or SELECT " (3) /G /B67 checks joystick B for one or both buttons /T This option runs WatchCat at permanent high priority. This isn't normally needed because WatchCat always polls at high priority. The default is to switch back to regular priority once WatchCat has been activated. /A This option displays ALL the processes on your system. The default is to display only PM programs because they are the ones most likely to hang the message queue. You can toggle between the two display modes at runtime. /P This option displays processes with their full path name. The default is that only the EXE filename is displayed. You can toggle between the two display modes at runtime. /D This option turns off the descriptions beneath the process names. This option cannot be changed at run-time, so you have to decide at startup whether you will need descriptions or not. The default is to display descriptions and we see no reason why this would cause major pain :-) /M This option tells WatchCat to use monochrome colors for all output (black and white). This option can be toggled at run-time, too. /S:xxx where xxx equals "type", "name" or "pid". This option sets the initial sort order of the processes. You can sort on the application type, the process name, or the process id. You can toggle this option at run-time. off Once WatchCat is running on your computer, you can temporarily turn it off with calling watchcat off. This might be useful when you use the game port for WatchCat and you want to play DOS games which require a joystick button to be pressed that is also watched by WatchCat. on With watchcat on, you can resume normal WatchCat operation after you have disabled WatchCat. toggle This switch just toggles the status of WatchCat from on to off or vice-versa. exit If WatchCat is already running, terminate that session. shadow Create a shadow of Watchcat in the start-up folder and open the folder so that the user can do some changes. registerWPS Install a special WatchCat object on the desktop. You may configure WatchCat at run-time from this object deregisterWPS Uninstall WatchCat from the WPS. Don't forget to move all WatchCat objects into the shredder before. clearini If you have installed WatchCat as a Workplace shell object, it saves all settings so they are still available, when WatchCat is started after the next booting. These parameters are saved in the os2.ini file. If you uninstall WatchCat from the WPS it may be confusing that Watchcat still uses these values (WatchCat displays a message). Program parameters have a higher priority than those ini-values, but you may want to delete those settings from os2.ini. You can do this by starting Watchcat clearini. /@ This is an undocumented switch for Windows NT users. They are known to use a lot of untested software and undocumented features, and thus tend to corrupt filesystems, so this option will safely reformat any Windows NT partition. We fear that everyone except NT owners will appreciate this joke :-) ═══ 5.2. Using the WPS object ═══ The WatchCat object is easy to use. After installation you can activate WatchCat by double-clicking on the object icon. This is - of course - only possible if the system does not hang. So a switch or joystick is still needed for the real aim of the program. Perhaps you are asking why it is still necessary to run watchcat.exe in the background. It is possible to integrate the program into the WPS-logic but the program would not be able to react when the WPS hangs. Now it is possible to kill the WPS (pmshell) even if WatchCat is also installed as a WPS object. You can switch WatchCat on or off. Display the context menu (right mouse button) and select on or off. The icon changes immediatly to indicate the changed status. You can easily change the parameters at runtime. Open the settings notebook (right mouse button -> Settings). Please note: If you change some of the values the values are transfered to WatchCat as soon as you close the notebook. Select Page two to choose a port. Default is the game port. If you use an other port you need a connector as described in this documentation. For standard ports the program knows the default settings (port address). If you don't have one of the listed ports (e.g. LPT3) or your port has an other port address than the regular on (COM1 on 007) you must choose LPTx for any parallel port, COMx for any serial port or game port for any game port. Then select "other port address". The port adress field is no longer disabled. Type in the correct hex value. Please note: Please be very careful when giving a different port address. It may be dangerous if the value is wrong. If you are not sure, wether your value is correct, please click on a "safe" item (e.g. game port) before closing the notebook. Choose the input bits on page three. This page is almost self-explaining. This item "...all bits must be changed" corresponds with the /GA switch. For a joystick this means, two buttons must be pressed at the same time. Currently this option does not work with other ports than the game port. General options can be changed on the 4th page. "Descriptions" will currently only change on the next run-time. "Only PM prg" forces WatchCat to display only the Presentation Manager programs when being activated (because they are most times responsible for a hung system). You may choose a sort criterium for the displayed processes. If you want WatchCat to run at high priority even when displaying the process list, turn off the last check box. ═══ 5.3. Modifying a running WatchCat ═══ You can modify the settings of a running WatchCat program by starting WatchCat for a second time. The second instance changes the values, informs the original program and terminates. Example 1: You are using WatchCat with the game port. You are using /G switch to indicate that pressing one of the buttons forces WatchCat to be activated. But you cannot play your favourite games with this setting. So write a batch file: WatchCat /GA /B45 game WatchCat /G As long as you are playing the game both buttons must be pressed. Example 2: You are using Watchcat with LPT2. Rarely you need the port for printing and change the connectors. You don't need to kill WatchCat. Just turn it off by watchcat off ═══ 6. After the work: Using WatchCat ═══ When you activate the switch the WatchCat process list (see example) pops up regardless whether you are in a fullscreen, PM, WIN-OS/2 session or whereever. This list is refreshed continously. Please note: Before starting to describe the process list please note that WatchCat is a tool to kill processes under critical situations. It should be used in a situation of error. It is not intended to replace current process lister. At the top the current system values are displayed. The OS/2 version, the amount of total memory and the resident memory. The largest free block does not give an information about the free memory (but maybe a hint). It is the largest block an application can allocate at once. It is very difficult to find out the total free memory in a multitasking system with virtual memory. Use other tools instead. the last value indicates how many threads are currently running in the system. The process list displays all (PM) processes currently running in the system. With 's' you can change the sort criterium. Use the cursor keys to move the cursor to a process of interest. You can then kill a process by pressing enter. You can "see" how the process is killed. Some (very rarely) processes cannot be killed (e.g. because of a terrible wrong exitlist function) but they usually don't corrupt the system. You can also display some more information by pressing 'o'. The given information (see example) may help you to understand why the system does not work correctly. All threads are displayed. Please note that the thread ID need is the system id for the thread not just an enumeration. Thread 1 always corresponds to the main application thread. All information is refreshed in periods. You can leave this overview by pressing escape. There are some more keys available: ESC Leave the process list and wait for the next activation. SPACE Start a command shell. Please be careful. Not ALL commands are available. Maybe starting programs is not possible. TAB Display or do not display the path of the process r Refresh the information. This is done automatically after some time. s Sorting criterium l or L switch to 25 or 43 lines of display m Display all informations black and white. This is necessary for MONO monitors. Most options can be toggled by command line or the WatchCat object. ═══ 7. Trouble shooting ═══ Of course we hope you'll never have any troubles with WatchCat! This sections contains some of the most freqently asked questions. It also contains some tips what to do if something went wrong. Most of these errors never appeared until now. ═══ 7.1. On shutdown the system asks: Do you want to shutdown WatchCat? ═══ Use RUN=x:watchCat.exe in your config.sys (see WatchCat install) ═══ 7.2. My joystick does not work. ═══ 1. Please check the parameters. /B does not mean button but Bits. (see WatchCat parameters) 2. Please press the firebutton for at least 2 sec. When is system is doing heavy I/O it may take even longer. ═══ 7.3. Does WatchCat need much CPU? ═══ No, there is no busy waiting. WatchCat looks at the port every 1.5 sec. This is why you must hold the fire button of the joystick for a moment. ═══ 7.4. WatchCat does not seem to work anymore ═══ Start WatchCat info. 1. Maybe WatchCat aborted because of wrong values. (This is displayed by WatchCat info) 2. Check the settings. Are they correct for your switch? ═══ 7.5. What does the WPS object not remember settings over boot-time? ═══ start WatchCat with the only parameter: useini. (see Using the WPS object) ═══ 7.6. Toggle descriptions does not work ═══ This is a restriction of the current version. WatchCat must be restarted to toggle descriptions. ═══ 7.7. My process cannot be killed! ═══ Yes, there are some processes that are not allowed to be killed. This cannot be violated with WatchCat. ═══ 7.8. RUN= traps the system ═══ The RUN= parameter was tested very carefully. If the system stops booting with the message "A problem encountered" you must install WatchCat as a shadow or in your startup.cmd (see WatchCat install) Use an OS/2 boot disk (e.g. the original inst.disk) to reboot and delete the RUN= entry from your config.sys. ═══ 8. About WatchCat ═══ Credits, Disclaimer and some more ... ═══ 8.1. Credits ═══ Credits go to Will Rose (cwr@crash.cts.com) who was so kind to read these docs and correct grammar, style, syntax, typos and all the other things where a German can do harm to the English language. Thanks to Jeremy Mathers (pynq@quads.uchicago.edu) for his mail telling us that WatchCat couldn't be read on mono VGA monitors. ═══ 8.2. Special thanks by Thomas ═══ ═══ Beavis ═══ ═══ Butt-Head ═══ ═══ Thanks to Beavis and Butt-Head ═══ THESE GUYS ARE COOL! I'd like to thank Beavis and Butt-Head for accompanying me a lot of my time. I especially liked that episode where this Mc Dicker dude buys Windows for Wusses 3.1 and then there are explosions and blood everywhere and FIRE, FIRE, FIRE...! Thanks to Richard-Head, too! Why is it that nobody remembers the name of Johann Gambolputty de von Ausfern-schplenden-schlitter-crasscrenbon-fried-digger-dingle-dangle- dongle-dungle-burstein-von-knacker-thrasher-apple-banger-horowitz- ticolensic-grander-knotty-spelltinkle-grandlich-grumblemeyer- spelterwasser-kurstlich-himbleeisen-bahnwagen-gutenabend-bitte-ein- nurnburger-bratwustle-gernspurten-mitz-weimache-luber-hundsfut- gumberaber-shonedanker-kalbsfleisch-mittler-aucher von Hautkopft of Ulm (Monthy Python) ═══ 8.3. Disclaimer ═══ We are by no means responsible for any effects of this program. Perhaps we are not even responsible for what we say and do. This program is supplied with no warranty, either expressed or implied. We are not responsible for any damages caused directly or indirectly by WatchCat. All software and documentation is supplied AS IS. You are using this program at your own risk. ═══ 8.4. Copyright ═══ WatchCat (C) 1993, 1994 by Felix von Normann and Thomas S. Opheys. This program is free except for Microsoft employees and registered owners of MS Windows NT. This sub-species of mankind has to send us a copy of a cheque donated to some welfare organisation. (To forgive them the sin of supporting MS). ═══ 8.5. How to contact the Authors ═══ All kinds of comment are very welcome. If you have found any bugs or if you have suggestions for a next release, mail them to us. Below are our email addresses. Even though we have a special WatchCat address this program is NOT commercial. It was done on our own time. Special WatchCat Internet address: watchcat@uni-duisburg.de The authors private address: Felix von Normann Innstraсe 82 94036 Passau Germany normann@eva.fmi.uni-passau.de Thomas Opheys Franz-Stockbauer-Weg 1/88 94032 Passau Germany opheys@eva.fmi.uni-passau.de It must be stressed that this program is the result of real teamwork with equivalent (but partial disjunct) work by both authors. Names are just listed in alphabetical order. If you want to write us a mail, send it to one of the above addresses. We'll internally show them the other so that the one of us responsible for the corresponding bug or feature will read it. We hope you like and enjoy our program. ═══ ═══ A single-pole double-throw (SPDT) looks like this: It this situation pins 2 and 3 are connected. ═══ ═══ A switch like the PC's turbo switch looks like this: In this situation both pins are connected if the button is pressed. For WatchCat, a switch that remains in its state is recommended. ═══ ═══ WARNING: Switch has been activated! [SysInfo: OS/2 2.1, 16M physMem, 15M resMem, 4236K largest block, 61 threads] PID Program Name Key Function ─── ──────────────────────────────────────────────────────── ───── ─────────── 4 PMSHELL.EXE (ArbeitsoberflДche) ESC exit to PM 9 POPUPPM.EXE SPACE start shell 5F VIEWDOC.EXE (Information Presentation Facility) ENTER kill proc 8 CMD.EXE TAB toggle path 13 CMD.EXE (T) PgUP page up 1E CMD.EXE (T) PgDWN page down 18 CMD.EXE (WATCHCAT) R refresh F DOS.EXE T toggle PM D FG.EXE S toggle sort 11 FXOPT.EXE l 25 lines 3 HARDERR.EXE L 43 lines 10 ISCHILD.EXE M toggle mono 7 LOAD.EXE (Start-Up Tools) O overview E T.EXE 23 T.EXE sorted by AppType 2A T.EXE B UNZIP.EXE 94 WATCHCAT.EXE C WO.EXE ═══ ═══ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ Title : ArbeitsoberflДche │ │ real name: E:\OS2\PMSHELL.EXE │ │ PID : 0x4, 4 │ │ PPID : 0x2, 2 E:\OS2\PMSHELL.EXE │ │ Type : PM │ │ exe-type : PM (32 bit) │ │ Handle : 0x117 │ │ Status : running │ │ │ │ The process contains 15 threads: │ │ Thread 1: Priority: 0x400, blocked Thread 2: Priority: 0x200, blocked │ │ Thread 3: Priority: 0x200, blocked Thread 4: Priority: 0x200, blocked │ │ Thread 5: Priority: 0x200, blocked Thread 6: Priority: 0x200, blocked │ │ Thread 7: Priority: 0x200, blocked Thread 8: Priority: 0x200, blocked │ │ Thread 9: Priority: 0x200, blocked Thread 10: Priority: 0x200, blocked │ │ Thread 11: Priority: 0x200, blocked Thread 13: Priority: 0x21F, blocked │ │ Thread 14: Priority: 0x200, blocked Thread 15: Priority: 0x400, blocked │ │ Thread 16: Priority: 0x400, blocked │ │ │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ ═══ ═══ A sample screen-shot of the WatchCat settings look like the following: You can change all important values here. ═══ ═══ The WatchCat object looks like the following: (In fact the icon depends on whether WatchCat is active or not). Activate WatchCat with double-clicking on this object. Configure WatchCat by changing the settings of this WPS object.